home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / websrvcs / nsISOAPMessage.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  18KB  |  403 lines

  1. /*
  2.  * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsISOAPMessage.idl
  3.  */
  4.  
  5. #ifndef __gen_nsISOAPMessage_h__
  6. #define __gen_nsISOAPMessage_h__
  7.  
  8.  
  9. #ifndef __gen_nsISupports_h__
  10. #include "nsISupports.h"
  11. #endif
  12.  
  13. /* For IDL files that don't want to include root IDL files. */
  14. #ifndef NS_NO_VTABLE
  15. #define NS_NO_VTABLE
  16. #endif
  17. class nsIDOMDocument; /* forward declaration */
  18.  
  19. class nsIDOMElement; /* forward declaration */
  20.  
  21. class nsISOAPEncoding; /* forward declaration */
  22.  
  23. class nsISOAPHeaderBlock; /* forward declaration */
  24.  
  25. class nsISOAPParameter; /* forward declaration */
  26.  
  27. class nsIVariant; /* forward declaration */
  28.  
  29.  
  30. /* starting interface:    nsISOAPMessage */
  31. #define NS_ISOAPMESSAGE_IID_STR "3970815e-1dd2-11b2-a475-db4dac6826f1"
  32.  
  33. #define NS_ISOAPMESSAGE_IID \
  34.   {0x3970815e, 0x1dd2, 0x11b2, \
  35.     { 0xa4, 0x75, 0xdb, 0x4d, 0xac, 0x68, 0x26, 0xf1 }}
  36.  
  37. /**
  38.  * This interface controls all SOAP messages. It permits easy
  39.  * construction of a message, typically through encoding of
  40.  * parameters and certain properties settable on this interface
  41.  * or through deserialization of a transport stream.  It
  42.  * permits easy processing of a message typically through
  43.  * decoding of parameters and certain properties available
  44.  * on this interface.  It also encapsulates protocol information
  45.  * interpreted by the transport.
  46.  */
  47. class NS_NO_VTABLE nsISOAPMessage : public nsISupports {
  48.  public: 
  49.  
  50.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISOAPMESSAGE_IID)
  51.  
  52.   enum { VERSION_1_1 = 0U };
  53.  
  54.   enum { VERSION_1_2 = 1U };
  55.  
  56.   enum { VERSION_UNKNOWN = 65535U };
  57.  
  58.   /**
  59.    * The document which captures the message, if any.  A simple 
  60.    * sending application passes parameters to the method
  61.    * encodeSOAPParameters, which calls SOAP encoders 
  62.    * to construct this document along with all contained elements.  
  63.    *
  64.    * But an application may create and set the message directly
  65.    * instead of invoking encodeSOAPParameters to use encoders
  66.    * or access and manipulate the message after it has been 
  67.    * constructed by encodeSOAPParameters.  If the message has 
  68.    * not been set, invoking a call will fail.  A message reciever 
  69.    * may also use this accessor to get the document to avoid using 
  70.    * decoders.
  71.    */
  72.   /* attribute nsIDOMDocument message; */
  73.   NS_IMETHOD GetMessage(nsIDOMDocument * *aMessage) = 0;
  74.   NS_IMETHOD SetMessage(nsIDOMDocument * aMessage) = 0;
  75.  
  76.   /**
  77.    * A convenience attribute to obtain the DOM element representing the
  78.    * SOAP envelope from the document.  DOM methods may be used to 
  79.    * access, add, or modify attributes of the envelope.
  80.    *
  81.    * If the message attribute is null or is not a document containing
  82.    * a root soap envelope element, then this will be null.
  83.    */
  84.   /* readonly attribute nsIDOMElement envelope; */
  85.   NS_IMETHOD GetEnvelope(nsIDOMElement * *aEnvelope) = 0;
  86.  
  87.   /**
  88.    * A convenience attribute to obtain the SOAP version number, if
  89.    * it is known, from the envelope.
  90.    *
  91.    * If the message attribute is null or is not a document containing
  92.    * a root soap envelope element, then this will be VERSION_UNKNOWN.
  93.    */
  94.   /* readonly attribute unsigned short version; */
  95.   NS_IMETHOD GetVersion(PRUint16 *aVersion) = 0;
  96.  
  97.   /**
  98.    * A convenience attribute to obtain the DOM element representing the
  99.    * SOAP header from the envelope.  DOM methods may be used to 
  100.    * access, add, or modify attributes or elements of the header.
  101.    *
  102.    * If the envelope attribute is null or does not contain a SOAP header
  103.    * element type, then this will be null.
  104.    */
  105.   /* readonly attribute nsIDOMElement header; */
  106.   NS_IMETHOD GetHeader(nsIDOMElement * *aHeader) = 0;
  107.  
  108.   /**
  109.    * A convenience attribute to obtain the DOM element representing the
  110.    * SOAP body from the envelope.  DOM methods may be used to 
  111.    * access, add, or modify attributes or elements of the body.
  112.    *
  113.    * If the envelope attribute is null or does not contain a SOAP body
  114.    * element type, then this will be null.
  115.    */
  116.   /* readonly attribute nsIDOMElement body; */
  117.   NS_IMETHOD GetBody(nsIDOMElement * *aBody) = 0;
  118.  
  119.   /**
  120.    * The name of the method being invoked. The methodName is set
  121.    * during encoding as the tagname of the single child of body
  122.    * of RPC-style messages.  When there is no encoded message
  123.    * this will be null.  The value of this attribute for
  124.    * document-style messages may be non-null but should be
  125.    * ignored.  It is up to the application to know whether the
  126.    * message is RPC-style or document style because the SOAP
  127.    * specification makes it difficult to tell which way a
  128.    * message was encoded.
  129.    */
  130.   /* readonly attribute AString methodName; */
  131.   NS_IMETHOD GetMethodName(nsAString & aMethodName) = 0;
  132.  
  133.   /**
  134.    * The target object on which the method is being invoked. This URI
  135.    * is set during encoding as the namespace to qualify the tagname 
  136.    * of the single child of body of RPC-style messages.  When there
  137.    * is no encoded message, this will be null.  The value of this
  138.    * attribute for document-style messages may be non-null but should
  139.    * be ignored.  It is up to the application to know whether the
  140.    * message is RPC-style or document style because the SOAP
  141.    * specification makes it difficult to tell which way a
  142.    * message was encoded.
  143.    */
  144.   /* readonly attribute AString targetObjectURI; */
  145.   NS_IMETHOD GetTargetObjectURI(nsAString & aTargetObjectURI) = 0;
  146.  
  147.   /**
  148.    * Encodes the specified parameters into this message, if
  149.    * this message type supports it.
  150.    *
  151.    * @param aMethodName The name of the method being invoked
  152.    * for rpc-style messages.  For document-style messages,
  153.    * this must be null.
  154.    *
  155.    * @param aTargetObjectURI The name of the target object
  156.    * for rpc-style messages.  For document-style messages,
  157.    * this must be null.
  158.    *
  159.    * @param aHeaderBlockCount Number of header blocks in array to be
  160.    *   encoded.  Must be 0 if header block array is null.
  161.    *
  162.    * @param aHeaderBlocks Array of header blocks to be encoded, which
  163.    *   may be null if there are no header blocks.
  164.    *
  165.    * @param aParameterCount Number of parameters in array 
  166.    *   to be encoded.  Must be 0 if parameter array is null.
  167.    *
  168.    * @param aParameters An array of parameters to be 
  169.    *   encoded, which may null if there are no parameters.
  170.    */
  171.   /* void encode (in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount, [array, size_is (aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount, [array, size_is (aParameterCount)] in nsISOAPParameter aParameters); */
  172.   NS_IMETHOD Encode(PRUint16 aVersion, const nsAString & aMethodName, const nsAString & aTargetObjectURI, PRUint32 aHeaderBlockCount, nsISOAPHeaderBlock **aHeaderBlocks, PRUint32 aParameterCount, nsISOAPParameter **aParameters) = 0;
  173.  
  174.   /**
  175.    * Gathers the header blocks of a message so that they can be
  176.    *   accessed by a recipient.
  177.    *
  178.    * @param aCount Integer to receive the length of the list
  179.    *   of header blocks.
  180.    *
  181.    * @return Array of header blocks found in the message.
  182.    */
  183.   /* void getHeaderBlocks (out unsigned long aCount, [array, size_is (aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks); */
  184.   NS_IMETHOD GetHeaderBlocks(PRUint32 *aCount, nsISOAPHeaderBlock ***aHeaderBlocks) = 0;
  185.  
  186.   /**
  187.    * Gathers the parameters of a message so that they can be
  188.    *   accessed by a recipient.
  189.    *
  190.    * @param aDocumentStyle If true, then the parameters
  191.    *   are looked for treating the message as a document 
  192.    *   style message, otherwise it treated as an RPC-style 
  193.    *   message.
  194.    *
  195.    * @param aCount Integer to receive the length of the list
  196.    *   of parameters.
  197.    *
  198.    * @return Array of parameters found in the message.
  199.    */
  200.   /* void getParameters (in boolean aDocumentStyle, out unsigned long aCount, [array, size_is (aCount), retval] out nsISOAPParameter aParameters); */
  201.   NS_IMETHOD GetParameters(PRBool aDocumentStyle, PRUint32 *aCount, nsISOAPParameter ***aParameters) = 0;
  202.  
  203.   /**
  204.    * The primary encoding of the message, which is established
  205.    *   at the envelope and used unless overridden.  By default,
  206.    *   this is the SOAP encoding, which may be locally modified
  207.    *   or used to obtain alternative encodings, which may be
  208.    *   locally modified, but it may be set to an encoding that
  209.    *   is shared, or it may be set to null, in which case all
  210.    *   non-literal header blocks and parameters must specify an
  211.    *   encoding.
  212.    */
  213.   /* attribute nsISOAPEncoding encoding; */
  214.   NS_IMETHOD GetEncoding(nsISOAPEncoding * *aEncoding) = 0;
  215.   NS_IMETHOD SetEncoding(nsISOAPEncoding * aEncoding) = 0;
  216.  
  217.   /**
  218.    * An optional URI that can be used to add a SOAPAction HTTP
  219.    * header field. If this attribute is NULL (the default case),
  220.    * no SOAPAction header will be added.
  221.    */
  222.   /* attribute AString actionURI; */
  223.   NS_IMETHOD GetActionURI(nsAString & aActionURI) = 0;
  224.   NS_IMETHOD SetActionURI(const nsAString & aActionURI) = 0;
  225.  
  226. };
  227.  
  228. /* Use this macro when declaring classes that implement this interface. */
  229. #define NS_DECL_NSISOAPMESSAGE \
  230.   NS_IMETHOD GetMessage(nsIDOMDocument * *aMessage); \
  231.   NS_IMETHOD SetMessage(nsIDOMDocument * aMessage); \
  232.   NS_IMETHOD GetEnvelope(nsIDOMElement * *aEnvelope); \
  233.   NS_IMETHOD GetVersion(PRUint16 *aVersion); \
  234.   NS_IMETHOD GetHeader(nsIDOMElement * *aHeader); \
  235.   NS_IMETHOD GetBody(nsIDOMElement * *aBody); \
  236.   NS_IMETHOD GetMethodName(nsAString & aMethodName); \
  237.   NS_IMETHOD GetTargetObjectURI(nsAString & aTargetObjectURI); \
  238.   NS_IMETHOD Encode(PRUint16 aVersion, const nsAString & aMethodName, const nsAString & aTargetObjectURI, PRUint32 aHeaderBlockCount, nsISOAPHeaderBlock **aHeaderBlocks, PRUint32 aParameterCount, nsISOAPParameter **aParameters); \
  239.   NS_IMETHOD GetHeaderBlocks(PRUint32 *aCount, nsISOAPHeaderBlock ***aHeaderBlocks); \
  240.   NS_IMETHOD GetParameters(PRBool aDocumentStyle, PRUint32 *aCount, nsISOAPParameter ***aParameters); \
  241.   NS_IMETHOD GetEncoding(nsISOAPEncoding * *aEncoding); \
  242.   NS_IMETHOD SetEncoding(nsISOAPEncoding * aEncoding); \
  243.   NS_IMETHOD GetActionURI(nsAString & aActionURI); \
  244.   NS_IMETHOD SetActionURI(const nsAString & aActionURI); 
  245.  
  246. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  247. #define NS_FORWARD_NSISOAPMESSAGE(_to) \
  248.   NS_IMETHOD GetMessage(nsIDOMDocument * *aMessage) { return _to GetMessage(aMessage); } \
  249.   NS_IMETHOD SetMessage(nsIDOMDocument * aMessage) { return _to SetMessage(aMessage); } \
  250.   NS_IMETHOD GetEnvelope(nsIDOMElement * *aEnvelope) { return _to GetEnvelope(aEnvelope); } \
  251.   NS_IMETHOD GetVersion(PRUint16 *aVersion) { return _to GetVersion(aVersion); } \
  252.   NS_IMETHOD GetHeader(nsIDOMElement * *aHeader) { return _to GetHeader(aHeader); } \
  253.   NS_IMETHOD GetBody(nsIDOMElement * *aBody) { return _to GetBody(aBody); } \
  254.   NS_IMETHOD GetMethodName(nsAString & aMethodName) { return _to GetMethodName(aMethodName); } \
  255.   NS_IMETHOD GetTargetObjectURI(nsAString & aTargetObjectURI) { return _to GetTargetObjectURI(aTargetObjectURI); } \
  256.   NS_IMETHOD Encode(PRUint16 aVersion, const nsAString & aMethodName, const nsAString & aTargetObjectURI, PRUint32 aHeaderBlockCount, nsISOAPHeaderBlock **aHeaderBlocks, PRUint32 aParameterCount, nsISOAPParameter **aParameters) { return _to Encode(aVersion, aMethodName, aTargetObjectURI, aHeaderBlockCount, aHeaderBlocks, aParameterCount, aParameters); } \
  257.   NS_IMETHOD GetHeaderBlocks(PRUint32 *aCount, nsISOAPHeaderBlock ***aHeaderBlocks) { return _to GetHeaderBlocks(aCount, aHeaderBlocks); } \
  258.   NS_IMETHOD GetParameters(PRBool aDocumentStyle, PRUint32 *aCount, nsISOAPParameter ***aParameters) { return _to GetParameters(aDocumentStyle, aCount, aParameters); } \
  259.   NS_IMETHOD GetEncoding(nsISOAPEncoding * *aEncoding) { return _to GetEncoding(aEncoding); } \
  260.   NS_IMETHOD SetEncoding(nsISOAPEncoding * aEncoding) { return _to SetEncoding(aEncoding); } \
  261.   NS_IMETHOD GetActionURI(nsAString & aActionURI) { return _to GetActionURI(aActionURI); } \
  262.   NS_IMETHOD SetActionURI(const nsAString & aActionURI) { return _to SetActionURI(aActionURI); } 
  263.  
  264. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  265. #define NS_FORWARD_SAFE_NSISOAPMESSAGE(_to) \
  266.   NS_IMETHOD GetMessage(nsIDOMDocument * *aMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessage(aMessage); } \
  267.   NS_IMETHOD SetMessage(nsIDOMDocument * aMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessage(aMessage); } \
  268.   NS_IMETHOD GetEnvelope(nsIDOMElement * *aEnvelope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnvelope(aEnvelope); } \
  269.   NS_IMETHOD GetVersion(PRUint16 *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  270.   NS_IMETHOD GetHeader(nsIDOMElement * *aHeader) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeader(aHeader); } \
  271.   NS_IMETHOD GetBody(nsIDOMElement * *aBody) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBody(aBody); } \
  272.   NS_IMETHOD GetMethodName(nsAString & aMethodName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMethodName(aMethodName); } \
  273.   NS_IMETHOD GetTargetObjectURI(nsAString & aTargetObjectURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTargetObjectURI(aTargetObjectURI); } \
  274.   NS_IMETHOD Encode(PRUint16 aVersion, const nsAString & aMethodName, const nsAString & aTargetObjectURI, PRUint32 aHeaderBlockCount, nsISOAPHeaderBlock **aHeaderBlocks, PRUint32 aParameterCount, nsISOAPParameter **aParameters) { return !_to ? NS_ERROR_NULL_POINTER : _to->Encode(aVersion, aMethodName, aTargetObjectURI, aHeaderBlockCount, aHeaderBlocks, aParameterCount, aParameters); } \
  275.   NS_IMETHOD GetHeaderBlocks(PRUint32 *aCount, nsISOAPHeaderBlock ***aHeaderBlocks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeaderBlocks(aCount, aHeaderBlocks); } \
  276.   NS_IMETHOD GetParameters(PRBool aDocumentStyle, PRUint32 *aCount, nsISOAPParameter ***aParameters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParameters(aDocumentStyle, aCount, aParameters); } \
  277.   NS_IMETHOD GetEncoding(nsISOAPEncoding * *aEncoding) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEncoding(aEncoding); } \
  278.   NS_IMETHOD SetEncoding(nsISOAPEncoding * aEncoding) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEncoding(aEncoding); } \
  279.   NS_IMETHOD GetActionURI(nsAString & aActionURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActionURI(aActionURI); } \
  280.   NS_IMETHOD SetActionURI(const nsAString & aActionURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetActionURI(aActionURI); } 
  281.  
  282. #if 0
  283. /* Use the code below as a template for the implementation class for this interface. */
  284.  
  285. /* Header file */
  286. class nsSOAPMessage : public nsISOAPMessage
  287. {
  288. public:
  289.   NS_DECL_ISUPPORTS
  290.   NS_DECL_NSISOAPMESSAGE
  291.  
  292.   nsSOAPMessage();
  293.  
  294. private:
  295.   ~nsSOAPMessage();
  296.  
  297. protected:
  298.   /* additional members */
  299. };
  300.  
  301. /* Implementation file */
  302. NS_IMPL_ISUPPORTS1(nsSOAPMessage, nsISOAPMessage)
  303.  
  304. nsSOAPMessage::nsSOAPMessage()
  305. {
  306.   /* member initializers and constructor code */
  307. }
  308.  
  309. nsSOAPMessage::~nsSOAPMessage()
  310. {
  311.   /* destructor code */
  312. }
  313.  
  314. /* attribute nsIDOMDocument message; */
  315. NS_IMETHODIMP nsSOAPMessage::GetMessage(nsIDOMDocument * *aMessage)
  316. {
  317.     return NS_ERROR_NOT_IMPLEMENTED;
  318. }
  319. NS_IMETHODIMP nsSOAPMessage::SetMessage(nsIDOMDocument * aMessage)
  320. {
  321.     return NS_ERROR_NOT_IMPLEMENTED;
  322. }
  323.  
  324. /* readonly attribute nsIDOMElement envelope; */
  325. NS_IMETHODIMP nsSOAPMessage::GetEnvelope(nsIDOMElement * *aEnvelope)
  326. {
  327.     return NS_ERROR_NOT_IMPLEMENTED;
  328. }
  329.  
  330. /* readonly attribute unsigned short version; */
  331. NS_IMETHODIMP nsSOAPMessage::GetVersion(PRUint16 *aVersion)
  332. {
  333.     return NS_ERROR_NOT_IMPLEMENTED;
  334. }
  335.  
  336. /* readonly attribute nsIDOMElement header; */
  337. NS_IMETHODIMP nsSOAPMessage::GetHeader(nsIDOMElement * *aHeader)
  338. {
  339.     return NS_ERROR_NOT_IMPLEMENTED;
  340. }
  341.  
  342. /* readonly attribute nsIDOMElement body; */
  343. NS_IMETHODIMP nsSOAPMessage::GetBody(nsIDOMElement * *aBody)
  344. {
  345.     return NS_ERROR_NOT_IMPLEMENTED;
  346. }
  347.  
  348. /* readonly attribute AString methodName; */
  349. NS_IMETHODIMP nsSOAPMessage::GetMethodName(nsAString & aMethodName)
  350. {
  351.     return NS_ERROR_NOT_IMPLEMENTED;
  352. }
  353.  
  354. /* readonly attribute AString targetObjectURI; */
  355. NS_IMETHODIMP nsSOAPMessage::GetTargetObjectURI(nsAString & aTargetObjectURI)
  356. {
  357.     return NS_ERROR_NOT_IMPLEMENTED;
  358. }
  359.  
  360. /* void encode (in unsigned short aVersion, in AString aMethodName, in AString aTargetObjectURI, in unsigned long aHeaderBlockCount, [array, size_is (aHeaderBlockCount)] in nsISOAPHeaderBlock aHeaderBlocks, in unsigned long aParameterCount, [array, size_is (aParameterCount)] in nsISOAPParameter aParameters); */
  361. NS_IMETHODIMP nsSOAPMessage::Encode(PRUint16 aVersion, const nsAString & aMethodName, const nsAString & aTargetObjectURI, PRUint32 aHeaderBlockCount, nsISOAPHeaderBlock **aHeaderBlocks, PRUint32 aParameterCount, nsISOAPParameter **aParameters)
  362. {
  363.     return NS_ERROR_NOT_IMPLEMENTED;
  364. }
  365.  
  366. /* void getHeaderBlocks (out unsigned long aCount, [array, size_is (aCount), retval] out nsISOAPHeaderBlock aHeaderBlocks); */
  367. NS_IMETHODIMP nsSOAPMessage::GetHeaderBlocks(PRUint32 *aCount, nsISOAPHeaderBlock ***aHeaderBlocks)
  368. {
  369.     return NS_ERROR_NOT_IMPLEMENTED;
  370. }
  371.  
  372. /* void getParameters (in boolean aDocumentStyle, out unsigned long aCount, [array, size_is (aCount), retval] out nsISOAPParameter aParameters); */
  373. NS_IMETHODIMP nsSOAPMessage::GetParameters(PRBool aDocumentStyle, PRUint32 *aCount, nsISOAPParameter ***aParameters)
  374. {
  375.     return NS_ERROR_NOT_IMPLEMENTED;
  376. }
  377.  
  378. /* attribute nsISOAPEncoding encoding; */
  379. NS_IMETHODIMP nsSOAPMessage::GetEncoding(nsISOAPEncoding * *aEncoding)
  380. {
  381.     return NS_ERROR_NOT_IMPLEMENTED;
  382. }
  383. NS_IMETHODIMP nsSOAPMessage::SetEncoding(nsISOAPEncoding * aEncoding)
  384. {
  385.     return NS_ERROR_NOT_IMPLEMENTED;
  386. }
  387.  
  388. /* attribute AString actionURI; */
  389. NS_IMETHODIMP nsSOAPMessage::GetActionURI(nsAString & aActionURI)
  390. {
  391.     return NS_ERROR_NOT_IMPLEMENTED;
  392. }
  393. NS_IMETHODIMP nsSOAPMessage::SetActionURI(const nsAString & aActionURI)
  394. {
  395.     return NS_ERROR_NOT_IMPLEMENTED;
  396. }
  397.  
  398. /* End of implementation class template. */
  399. #endif
  400.  
  401.  
  402. #endif /* __gen_nsISOAPMessage_h__ */
  403.